Method and system for exploiting spare link bandwidth in a multilane communication channel

ABSTRACT

Aspects of the invention may include a method for encoding data in a multilane communication channel. The method may include generating from existing control characters in a character set, an expanded control character which may be utilized for controlling data in each lane of the multilane communication channel. The expanded control character may utilize spare link bandwidth. At least one of the lanes may be controlled using at least one of the generated existing control characters. If a first control character is an alignment character, a second control character may be selected from any other existing control characters. The first control character may be combined with the second control character to generate a third control character. Each of the combinations of the first and second control characters may represent an expanded control character. The existing control characters may be a configuration character, an idle character or an encapsulation character.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

[0001] This application makes reference to, claims priority to, andclaims the benefit of:

[0002] U.S. Provisional Application Serial No. 60/448,703 filed Feb. 18,2003;

[0003] U.S. Provisional Application Serial No. 60/463,000 filed Apr. 15,2003; and

[0004] U.S. Provisional Application Serial No. 60/446,894 filed Feb. 12,2003.

[0005] The above stated applications are incorporated herein byreference in their entirety.

FIELD OF THE INVENTION

[0006] Certain embodiments of the invention relate to encoding ofinformation. More specifically, certain embodiments of the inventionrelate to a method and system for encoding information to exploit sparelink bandwidth in a multilane communication channel.

BACKGROUND OF THE INVENTION

[0007] Data communication between two link partners or entities in adigital communication system may be accomplished according to thegeneral configuration of FIG. 1. FIG. 1 is a diagram illustrating anembodiment of an existing multilane digital communication link.Referring to FIG. 1, there is shown a digital communication link 100,which may include transmitter side 101 and a receiver side 102. Thetransmitter side 101 may include a multi-lane encoder 103, a high-speedserializer 104 and a modulator 105. The receiver side 102 may include ademodulator 106, a high-speed de-serializer 107, and a multi-lanedecoder 108. The transmitter side 101 and the receiver side 102 may becoupled by a link infrastructure 110. Alternatively, the linkinfrastructure 110 may be a loopback path. Notwithstanding, the linkinfrastructure may be, for example, a shielded twisted pair, anunshielded twisted pair (UTP), copper wire or optical fiber.

[0008] Typically, the multi-lane encoder 103 may accept raw data bytesfrom an upstream component of the digital communication system andencode the raw data bytes into a plurality of n parallel lanes 111 a ofcoded words. The coded words may be specially designed to providereliable transmission over the digital communication link 100. Forexample, standardized coding such as 4B5B or 8B10B coding may beutilized to ensure reliable transmission.

[0009] Once the raw bytes of data have been encoded, the resulting codeddata may be multiplexed into a serial bit stream 109 a by the high-speedserializer 104. The serial bit stream 109 a may be transferred to themodulator 105 for processing. The modulator 105 may performdigital-to-analog conversion on the serial bit stream 109 a, resultingin an analog equivalent bitstream 109 b. The resulting analog serialbitstream 109 b may be transferred to the receiver side 102 via the linkinfrastructure or loopback 110.

[0010] Once the analog serial bitstream 109 b reaches the demodulator106 on the receiver side 102, the demodulator 106 may perform ananalog-to-digital conversion on the serial bit stream 109 b, resultingin a serial digital bitstream 109 c. The resulting serial digitalbitstream 109 c generated by the demodulator 106 may be transferred tothe high-speed de-serializer 107. The de-serializer 107 may perform theopposite function of the serializer 104 and may translate the serialdigital bitstream 109 c back into a plurality of n parallel lanes 111 b.The n parallel lanes 111 b of data are then passed to the multi-lanedecoder 108, which essentially performs the opposite function of theencoder 103 and translates the parallel lanes back into raw data bytes.

[0011] An example of a multi-lane protocol interface is a 10 GigabitAttachment Unit Interface (XAUI). XAUI is a full duplex interface thatmay utilize four data lanes to achieve throughput of 10 gigabits persecond. Each data lane may operate in parallel at speed of 3.125gigabits per second to accommodate data and associated overhead which isgenerated by the 8B/10B coding that is utilized. The resulting data rateis therefore 10 gigabits per second.

[0012]FIG. 2 is a diagram that illustrates an example of a XAUI parallellane structure 200 for 10 gigabit (10 G) BASE-X operation comprisingfour lanes. Referring to FIG. 2, the XAUI parallel lane structure 200may include a first lane (lane 0), a second lane (lane 1), a third lane(lane 2) and a fourth lane (lane 3). The XAUI parallel lane structure200 depicts the end of a first data packet 201, an inter-packet-gap(IPG) or idle 202 and a first portion of a second data packet 203.

[0013] The data word bytes in the data packets may be designated by /D/.The end-of-packet (EOP) word may be designated by the control character/T/ and may indicate the end of a data packet. The SOP (start-of-packet)word may be designated by the control character /S/ and may indicate thestart of a data packet. The control character /K/ may indicate a commaand may be utilized for byte alignment. The control character /A/ may beutilized to indicate an alignment character that may used for lanealignment. The control character /R/ may indicate a carrier extend andmay be utilized to separate packets within a burst of packets. Incertain instances, the control character /R may be utilized forcode-group alignment. In this regard, the control character /R/ may beused to ensure proper code-group alignment of a first idle characteroccurring after a packet has been transmitted. The IPG or idle packet202 preferably includes control characters such as /A/, /K/, and /R/.Consequently, the IPG or idle packet 202 does not include datacharacters.

[0014] The various control characters in each of the parallel lanes,lane 0, lane 1, lane 2 and lane 3 may be part of the transmissionprotocol utilized by standardized 10 G BASE-X transmission. Inaccordance with current 10 G standards and protocols, there are 12control characters or special code groups.

[0015] Further limitations and disadvantages of conventional andtraditional approaches will become apparent to one of skill in the art,through comparison of such systems with the present invention as setforth in the remainder of the present application with reference to thedrawings.

BRIEF SUMMARY OF THE INVENTION

[0016] Aspects of the invention include a method for encoding data in amultilane communication channel. The method may include generating fromexisting control characters in a character set, expanded controlcharacters utilized for controlling the data in each lane of themultilane communication channel. At least one of the lanes of themultilane communication channel may be controlled using at least one ofthe generated control characters. The method may further includeselecting a second control character from any other existing controlcharacters if a first control character of the existing controlcharacters is an alignment character. The first control character may becombined with the second control character to generate a third controlcharacter. Each of the combination of the combined first controlcharacter and the second control character may represent an expandedcontrol character. A first logic level may be assigned to the firstcontrol character and a second logic level assigned to the secondcontrol character. The first logic level or the second logic level maybe one of logic zero (0) and logic (1).

[0017] If a first control character of the existing control charactersis a start-of-packet control character, a second control character maybe selected from any other existing control character in a controlcharacter set. A start of a packet may be indicated using the selectedsecond control character. The second control character may be placed ina first lane of the multilane communication channel.

[0018] Another aspect of the invention may include determining whichlane of the multilane communication channel contains an end-of-packetcontrol character. If the end-of-packet control character is preceded byat least one control character in a lane of the multilane communicationchannel, then at least one other control character may be selected fromthe existing control character set. The other selected control charactermay be an end-of-packet control character. If the end-of-packet controlcharacter is succeeded by at least one comma control character in a laneof the multilane communication channel, then at least one other controlcharacter may be selected from the existing control character set. Theselected character may be encoded as a comma control character. Themethod may further include generating combinations of the other encodedcontrol character and assigning a unique value to each of the generatedcombinations. Each of the unique values may represent an expandedcontrol character.

[0019] In another embodiment of the invention, at least one lane havingan inter-packet-gap control character may be located. Any combination ofcontrol characters may be selected from an existing control characterset. A column of the multilane communication channel corresponding to atleast one lane with the inter-packet-gap may be encoded with anycombination of the control characters. At least one column bearing data,for example, a data word, which is bounded by the control characters maybe selected from the existing control character set. At least a firstlane and a last lane of at least one column of the multilanecommunication channel may be encoded with the control charactersselected from the existing control character set. The expanded controlcharacter may utilize spare link bandwidth. The existing controlcharacters may be one of a configuration character, an idle characterand an encapsulation character.

[0020] Another embodiment of the invention may provide amachine-readable storage, having stored thereon, a computer programhaving at least one code section for encoding data in a multilanecommunication channel. The at least one code section may be executableby a machine, thereby causing the machine to perform the steps forencoding data in a multilane communication channel as described above.

[0021] A further aspect of the invention provides a system for encodingdata in a multilane communication channel. The system may include atleast one generator which may generate from existing control charactersin a character set, expanded control characters utilized for controllingthe data in each lane of the multilane communication channel. At leastone controller may control at least one of the lanes of the multilanecommunication channel using at least one of the generated controlcharacters. A selector may select a second control character from anyother of the existing control characters if a first control character ofthe existing control characters is an alignment character. A combinermay combine the first control character with the second controlcharacter to generate a third control character. Each of the combinationof the combined first control character and the second control charactermay represent the expanded control character. An assignor may assign afirst logic level to the first control character and to assign a secondlogic level to the second control character. The first logic level andthe second logic level is one of logic zero (0) and logic (1).

[0022] In another aspect of the invention, the selector may select asecond control character from any other of the existing controlcharacters if a first control character of the existing controlcharacters is a start-of-packet control character. The selected secondcontrol character may indicate the start of a packet. The controller mayplace the second control character in a first lane of the multilanecommunication channel. The controller may also determine which lane ofthe multilane communication channel contains an end-of-packet controlcharacter.

[0023] The selector may select at least one other control character fromthe existing control character set if the end-of-packet controlcharacter is preceded by at least one control character in a lane of themultilane communication channel. An encoder may encode the selected atleast one other control character as the end-of-packet controlcharacter. The selector may also select at least one other controlcharacter from the existing control character set if the end-of-packetcontrol character is succeeded by at least one comma control characterin a lane of the multilane communication channel. The encoder may encodethe selected control character as the comma control character. Thegenerator may generate combinations of the encoded control character.The assignor may assign a unique value to each of the generatedcombinations of the encoded control character. Each of the assignedunique values may represent an expanded control character.

[0024] In another aspect of the invention, the controller may determineat least one lane of the multilane communication channel that has aninter-packet-gap control character. The selector may select anycombination of control characters from the existing control characterset. The encoder may encode a column of the multilane communicationchannel corresponding to the determined lane with the selected anycombination of control characters. The generator may generate at leastone column bearing, for example, a data word, bounded by controlcharacters selected from the existing control character set. The encodermay encode at least a first lane and a last lane of at least one columnof the multilane communication channel with the control charactersselected from the existing control character set.

[0025] In accordance with the various embodiments of the invention, theexpanded control character may utilize spare link bandwidth. Theexisting control characters may be a configuration character, an idlecharacter or an encapsulation character, for example.

[0026] These and other advantages, aspects and novel features of thepresent invention, as well as details of a illustrated embodimentthereof, will be more fully understood from the following descriptionand drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

[0027]FIG. 1 is a diagram illustrating an embodiment of a currentmultilane digital communication link.

[0028]FIG. 2 is a diagram that illustrates an example of a XAUI parallellane structure 200 for 10 gigabit (10 G) BASE-X operation comprisingfour lanes.

[0029]FIG. 3 is a diagram illustrating an embodiment of an enhancedencoding method specifically showing the encoding of lane alignmentcontrol characters /A/, in accordance with an embodiment of theinvention.

[0030]FIG. 4 is a diagram illustrating an embodiment of the enhancedencoding method of FIG. 3 specifically showing the encoding of astart-of-packet control character /S/ in accordance an embodiment of thepresent invention.

[0031]FIG. 5 is a diagram illustrating an embodiment of the enhancedencoding method of FIG. 3 specifically showing the encoding of anend-of-packet control character /T/, in accordance with an embodiment ofthe present invention.

[0032]FIG. 6 is a diagram illustrating an embodiment of the enhancedencoding method of FIG. 3 specifically showing the encoding of controlcharacters in an inter-packet-gap, in accordance with and embodiment ofthe invention.

[0033]FIG. 7 is a diagram illustrating an embodiment of the enhancedencoding method of FIG. 3 specifically showing the encoding of datawords bounded by control characters, in accordance with an embodiment ofthe invention.

[0034]FIG. 8 is a block diagram of an exemplary system 800 for encodingdata in a multilane communication channel in accordance with anembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0035] Certain embodiments of the present invention relate to exploitingspare link bandwidth in a multi-lane communication channel, using anenhanced encoding method, to effectively expand the utilized informationcapacity of the multi-lane communication channel. Accordingly, aspectsof the invention may include a method for encoding data in a multilanecommunication channel. The method may include generating from existingcontrol characters in a character set, an expanded control characterwhich may be utilized for controlling data in each lane of the multilanecommunication channel. The expanded control character may utilize sparelink bandwidth. At least one of the lanes may be controlled using atleast one of the generated existing control characters. If a firstcontrol character is an alignment character, a second control charactermay be selected from any other existing control characters. The firstcontrol character may be combined with the second control character togenerate a third control character. Each of the combinations of thefirst and second control characters may represent an expanded controlcharacter. The existing control characters may be a configurationcharacter, an idle character or an encapsulation character.

[0036]FIG. 3 is a diagram 300 illustrating an embodiment of an enhancedencoding method specifically showing the encoding of lane alignmentcontrol characters /A/, in accordance with an embodiment of theinvention. The lane alignment control character /A/ is a character thatmay appear in each of the lanes of a multi-lane transmission. The lanealignment control character /A/ may be utilized to align the parallellanes with each other. In the case of a XAUI, the lane alignment controlcharacter may be utilized to align each of lane 0, lane 1, lane 2 andlane 3 with each other. Referring to FIG. 2, reference 204 illustratesan exemplary lane alignment characters in each of the XAUI lanes, lane0, lane 1, lane 2 and lane 3.

[0037] In an embodiment of the invention, the lane alignment controlcharacter may not be limited to the /A/ control character. Accordingly,the protocol may include a lane alignment character that may have atleast two control characters. In this regard, the lane alignmentcharacter /A/ may be combined with a second control character and thecombined control characters may be utilized for lane alignment. Forexample, in a case where a second lane alignment character such as /A/is utilized, then the /A /and /A′/ characters may be simultaneouslyutilized for lane alignment. The /A′/ control character may be any oneof the other available control characters in the protocol.

[0038] In order to add encoded information, the control character /A/may represent logic “1” and the control character /A′/ may representlogic “0”. As a result, the two control characters /A/ and /A′/ may beutilized for lane alignment and as four additional bits of informationthat may be transmitted. Accordingly, the /A/ and the /A′/ controlcharacters may utilize spare link bandwidth. The following tableillustrates possible combinations for the control characters /A/, /A′/for a XAUI. LANE 0 LANE 1 LANE 2 LANE 3 0 /A/ /A/ /A/ /A/ 1 /A/ /A/ /A//A′/ 2 /A/ /A/ /A′/ /A/ 3 /A/ /A/ /A′/ /A′/ 4 /A/ /A′/ /A/ /A/ 5 /A//A′/ /A/ /A′/ 6 /A/ /A′/ /A′/ /A/ 7 /A/ /A′/ /A′/ /A′/ 8 /A′/ /A/ /A//A/ 9 /A′/ /A/ /A/ /A′/ 10 /A′/ /A/ /A′/ /A/ 11 /A′/ /A/ /A′/ /A′/ 12/A′/ /A′/ /A/ /A/ 13 /A′/ /A′/ /A/ /A′/ 14 /A′/ /A′/ /A′/ /A/ 15 /A′//A′/ /A′/ /A′/

[0039] For Example, if the lane alignment characters transmitted in eachlane are, lane 0: /A′/, lane 2: /A/ and lane 3: /A′/, this may representthe four (4) bits of information 0, 1, 1, 0. With four (4) bits, thereare 2⁴ or 16 possible combinations that may be encoded, each of whichmay be utilized to represent a different unit of information. In oneaspect of the invention, the four (4) bits of lane alignment controlcharacters may be encoded in order to transmit status information orother system information, for example. The following table illustratesexemplary logic assignments for various combinations of controlcharacters /A/, /A′/ for a XAUI as described in the table above. LANE 0LANE 1 LANE 2 LANE 3 0 1 1 1 1 1 1 1 1 0 2 1 1 0 1 3 1 1 0 0 4 1 0 1 1 51 0 1 0 6 1 0 0 1 7 1 0 0 0 8 0 1 1 1 9 0 1 1 0 10 0 1 0 1 11 0 1 0 0 120 0 1 1 13 0 0 1 0 14 0 0 0 1 15 0 0 0 0

[0040] The first exemplary combination or encoding, namely 0, which haslane 0: /A/, lane 1: /A/, lane 2: /A/ and lane 3: /A/ may represent thestandard assignment for lane alignment. However, the remaining encodedcombinations, namely 1 through 15, may represent expanded or additionalassignments that may be utilized for communicating status or othersystem information.

[0041] In another embodiment of the invention, a start-of-packet (SOP)control character, which may be represented as a /S/ control character,may also be encoded. FIG. 4 is a diagram 400 illustrating an embodimentof the enhanced encoding method of FIG. 3 specifically showing theencoding of a start-of-packet control character /S/ in accordance anembodiment of the present invention. The start-of-packet controlcharacter /S/, may normally appear in lane 0 of a multilanecommunication channel structure. The start-of-packet control character/S/, may be utilized to signify the start of a next data packet, symbolor codeword by itself. Referring to FIG. 2, reference 206 depicts astart-of-packet control character /S/.

[0042] In one embodiment of the invention, any control character in anexisting control character set may be utilized to define an expanded ornew start-of-packet control character that may represent the start of anext packet. Referring to FIG. 4, the expanded or new start-of-packetcharacter may be represented by /Y/, for example. The expanded or newstart-of-packet control character is referenced by 402. The expanded ornew start-of-packet control character 402 may represent the start of anew packet and may be located or placed in the first lane, lane 0. Theexpanded start-of-packet control character 402 may be succeeded by orfollowed by data words, /D/, in each of the successive lanes, lane 1,lane 2 and lane 3. As a result, each unique control character /Y/ in astart-of-packet lane sequence may represent a different unit ofinformation. For example, if there are 12 control characters in thecontrol character set, then 11 additional units of information may becommunicated as part of a start-of-packet control character.Notwithstanding, the additional units of information or expandedstart-of-packet control characters may utilize spare link bandwidth.

[0043] In another embodiment of the invention, an end-of-packet (EOP)control character, which may be represented as a /T/ control character,may also be encoded. FIG. 5 is a diagram 500 illustrating an embodimentof the enhanced encoding method of FIG. 3 specifically showing theencoding of an end-of-packet control character /T/, in accordance withan embodiment of the present invention. The end-of-packet controlcharacter /T/, may appear in any lane of a multi-lane structure and maybe preceded by data words /D/ and/or followed by comma controlcharacters /K/. The end-of-packet control character /T/ may also beutilized to define the end of a current data packet, symbol or controlword all by itself. Although /T/ and /K/ control characters areillustrated in FIG. 5, the invention is not so limited and any othercontrol characters in the existing control character set may beutilized.

[0044] In accordance with an aspect of the invention, whenever anend-of-packet control character is preceded by data words /D/,subsequent end-of-packet control characters /T/ and/or comma controlcharacters /K/ may be encoded as any available control character such as/Y/. For example, referring to FIG. 5, in a case where there are four(4) lanes and the end-of-packet sequence would be lane 0: /D/, lane 1:/D/, lane 2: /D/, and lane 3: /T/, as referenced by 502, then the /T/ inlane 3 may be encoded as any available control character /Y/. This mayresult in expanded or additional control characters that may provideadditional units of information, which communicates status or othersystem information. The additional units of information or expandedend-of-packet control characters may utilize spare link bandwidth.

[0045] Similarly, in instances where the end-of-packet sequence would belane 0: /D/, lane 1: /D/, lane 2: /T/ and lane 3: /K/, as referenced by504, then the /T/ control character in lane 2 and the control character/K/ in lane 3 may be encoded with any combination of available controlcharacters. This may result in expanded or additional control charactersand may provide additional units of information that communicates statusor other system information. The additional units of information orexpanded end-of-packet control characters may utilize spare linkbandwidth.

[0046] Additionally, in instances where the end-of-packet sequence wouldbe lane 0: D, lane 1: /T/, lane 2: /K/ and lane 3: /K/, as referenced by506, then the /T/ control character in lane 1, the /K/ control characterin lane 2, and the /K/ control character in lane 3 may be encoded withany combination of available control characters. In this regard, thesequence of two (2) /K/ control characters in lane 2 and lane 3 may beencoded as two (2) bits of additional information. For example, the two(2) / K/ control characters may be encoded as /K/ or /K′/ where /K′/ isa different control character from /K/ and may be one of the controlcharacters in the existing control character set. In this ° manner, the/K/ control character may represent logic one (1) and the /K′/ mayrepresent logic zero (0), thereby providing 2 bits of additionalinformation in the EOP sequence. This may result in expanded oradditional control characters and may provide additional units ofinformation that communicates status or other system information. Theadditional units of information or expanded end-of-packet controlcharacters may utilize spare link bandwidth.

[0047] Finally, in instances where the end-of-packet sequence would belane 0: /T/, lane 1: /K/, lane 2: /K/ and lane 3: /K/, as referenced by508, then the sequence of three (3) /K/ control characters in lane 1,lane 2 and lane 3 may be encoded as three (3) bits of additionalinformation. Again, this may result in expanded or additional controlcharacters and may provide additional units of information thatcommunicates status or other system information. The additional units ofinformation or expanded end-of-packet control characters may utilizespare link bandwidth. For example, the three (3) /K/ control charactersmay be encoded as /K/ or /K′/ where /K′/ is a different controlcharacter from /K/ and may be one of the control characters in theexisting control character set. In this manner, the /K/ controlcharacter may represent logic one (1) and the /K′/ may represent logiczero (0), thereby providing 3 bits of additional information in the EOPsequence. Other encoding schemes for this EOP sequence may beimplemented without departing from the spirit or essence of the variousembodiments of the present invention.

[0048] Another embodiment of the invention may provide encoding ofcontrol characters in an idle or inter packet gap (IPG). FIG. 6 is adiagram 600 illustrating an embodiment of the enhanced encoding methodof FIG. 3 specifically showing the encoding of control characters in aninter-packet-gap, in accordance with an embodiment of the invention. Aninter-packet-gap or idle control character may occur between two datapackets in a multilane communication channel. The inter-packet-gap mayinclude comma control characters /K/ and carrier extend controlcharacters /R/. In general, the inter-packet-gap control characters maybe the same in any given column of a parallel multilane channelstructure. Referring to FIG. 2, reference 208 depicts an idle orinter-packet-gap control character.

[0049] Within an inter-packet-gap, a column of control characters acrossthe parallel lanes of a multilane communication channel may be encodedusing any combination of available control characters such as /Y/ inaccordance with an embodiment of the invention. This may result inexpanded or additional inter-packet-gap control characters and mayprovide additional units of information that communicates status orother system information. The additional units of information orexpanded inter-packet-gap control characters may utilize spare linkbandwidth. In a further aspect of the invention, multiple columns ofcontrol characters within an inter-packet-gap may also be encoded in asimilar manner to add even more information to the inter-packet-gap.

[0050] Referring to FIG. 6, a column containing /K/ control characters602, which may represent an inter-packet-gap or idle control character,may be encoded using any combination of control characters in thecontrol character set. In this regard, /Y/ may represent a selectedcontrol character from the control character set. Possible combinationsof the selected control character /Y/ may be represented by /Y_(i)/,/Y_(j)/, /Y_(k)/ and /Y_(l)/. Similarly, a column containing /R/ controlcharacters 604, which may represent an inter-packet-gap or idle controlcharacter, may be encoded using any combination of control characters inthe control character set. Accordingly, the /R/ control characters maybe encoded using any possible combinations and may be represented by/Y_(i)/, /Y_(j)/, /Y_(k)/ and /Y_(l)/.

[0051] Another embodiment of the invention may include the creation orgeneration of new columns of control characters, data words, codewordsand/or symbols, which may be placed in a multilane communicationchannel. FIG. 7 is a diagram 700 illustrating an embodiment of theenhanced encoding method of FIG. 3 specifically showing the encoding ofdata words bounded by control characters, in accordance with anembodiment of the invention. In FIG. 7, newly created columns of controlcharacters /Y/ and data words /D/ may be inserted into a multilanedatastream for a communication channel.

[0052] Referring to FIG. 7, three (3) exemplary configuration columns702, 704 and 706, of data words /D/ bounded by control characters /Y/are illustrated. Expanded information may be encoded in the data words/D/ and may be bounded by control characters /Y/. The control characters/Y/ may be any combination of control characters in the controlcharacter set. Certain configurations of control characters /Y/ and datawords /D/ may define specific types of communicated information.Accordingly, this may result in additional control characters and mayprovide additional units of information that may communicates status orother system information. The additional units of information orexpanded control characters may utilize spare link bandwidth.

[0053] For example, configuration column 702 illustrates lane 0: /Y/,lane 1: /D/, lane 2: /Y/ and lane 3: Y and configuration column 704illustrates lane 0: /Y/, lane 1: /Y/, lane 2: /D/ and lane 3: /Y/. Theconfiguration column 706 having lane 0: /Y/, lane 1: /D/, lane 2: /D/and lane 3: /Y/ may be generated to represent two bytes of statusinformation such as error information. If each data word /D/ is 8 bits,for example, then each /D/ may be encoded to provide up to 28 or 256different units of information. The newly encoded configuration columns702, 704 and 706 illustrate /D/ data words bounded by control characters/Y/. The new columns of added information may be inserted in theparallel lane structure of a multilane channel. In this regard, the newcolumns and added information may be inserted within data packets and/orwithin inter-packet-gaps, for example. The insertion of new columns ofadded information may result in the additional bytes being added to theparallel datastream in the multilane channel. However, the additionalbytes are added to the parallel data stream such that the additionalinformation that is carried by the additional bytes out weighs theoverhead associated with the additional bytes.

[0054] Other embodiments that may take advantage of spare linkbandwidth, may also be implemented. For example, the /K/ controlcharacter may comprise seven (7) fixed bits and three (3) don't carebits (xxx) according to 8B/10B encoding protocol, thereby resulting in acodeword of 001111 1xxx. The protocol may be modified such that thethree (3) don't care bits xxx, may be encoded with 23 or 8 differentunits of additional information in accordance with an embodiment of thepresent invention. Notwithstanding, although a XAUI is utilized toillustrate various embodiment or aspects of the invention, the enhancedencoding methods are applicable to other encoding schemes that mayutilize multiple lanes, in accordance with various embodiments of thepresent invention.

[0055]FIG. 8 is a block diagram of an exemplary system 800 for encodingdata in a multilane communication channel in accordance with anembodiment of the invention. The system 800 may include an assignor 802,a selector 804, an encoder 806, a controller 808, a combiner 810 and agenerator 812. Referring to FIG. 8, the generator 812 may generate fromexisting control characters in a character set, expanded controlcharacters utilized for controlling the data in each lane of themultilane communication channel. The controller 808 may control at leastone of the lanes of the multilane communication channel using at leastone of the generated control characters. The selector 804 may select asecond control character from any other of the existing controlcharacters if a first control character of the existing controlcharacters is an alignment character. The combiner 810 may combine thefirst control character with the second control character to generate athird control character. Each of the combination of the combined firstcontrol character and the second control character may represent theexpanded control character. The assignor 802 may assign a first logiclevel to the first control character and to assign a second logic levelto the second control character. The first logic level and the secondlogic level is one of logic zero (0) and logic (1).

[0056] In another aspect of the invention, the selector 804 may select asecond control character from any other of the existing controlcharacters if a first control character of the existing controlcharacters is a start-of-packet control character. The selected secondcontrol character may indicate the start of a packet. The controller 808may place the second control character in a first lane of the multilanecommunication channel. The controller 808 may also determine which laneof the multilane communication channel contains an end-of-packet controlcharacter.

[0057] The selector 804 may select at least one other control characterfrom the existing control character set if the end-of-packet controlcharacter is preceded by at least one control character in a lane of themultilane communication channel. The encoder 806 may encode the selectedat least one other control character as the end-of-packet controlcharacter. The selector 804 may select at least one other controlcharacter from the existing control character set if the end-of-packetcontrol character is succeeded by at least one comma control characterin a lane of the multilane communication channel. The encoder 806 mayencode the selected control character as the comma control character.The generator 812 may generate combinations of the encoded controlcharacter. The assignor 802 may assign a unique value to each of thegenerated combinations of the encoded control character. Each of theassigned unique value may represent an expanded control character.

[0058] In another aspect of the invention, the controller 808 maydetermine at least one lane of the multilane communication channel thathas an inter-packet-gap control character. The selector 804 may selectany combination of control characters from the existing controlcharacter set. The encoder 806 may encode a column of the multilanecommunication channel corresponding to the determined lane with theselected any combination of control characters. The generator 812 maygenerate at least one column bearing, for example a data word, boundedby control characters selected from the existing control character set.The encoder 806 may encode at least a first lane and a last lane of atleast one column of the multilane communication channel with the controlcharacters selected from the existing control character set. Inaccordance with the various embodiments of the invention, the expandedcontrol character may utilizing spare link bandwidth. The existingcontrol characters may be a configuration character, an idle characteror an encapsulation character, for example.

[0059] In another embodiment of the invention, the /S/ control charactermay be further employed to utilize unused bandwidth. In this regard, the/S/ control character may not be limited to lane 0, but may be utilizedin other lanes as well. For example, in a four (4) lane XAUIarrangement, the /S/ control character may occur in lanes 1, 2 and/or 3.Accordingly, in the four (4) lane XAUI system, there would be two (2)additional bits of information that may be passed depending on the lanein which lane the /S/ control character is located. For example, lane 0may be represented by binary 00, lane 1 by binary 01, lane 2 by binary10 and lane 3 by binary 11.

[0060] In summary, a method is provided that exploits spare linkbandwidth in a multi-lane communication channel using an enhancedencoding scheme, to effectively expand the utilized information capacityof a multilane communication channel. Existing control characterprotocol may be enhanced to permit the embedding of additionalinformation in the multilane communication channel. The additionalinformation may include various system and status information.

[0061] While the invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the invention without departing from its scope.Therefore, it is intended that the invention not be limited to theparticular embodiment disclosed, but that the invention will include allembodiments falling within the scope of the appended claims.

[0062] Accordingly, the present invention may be realized in hardware,software, or a combination of hardware and software. The presentinvention may be realized in a centralized fashion in one computersystem, or in a distributed fashion where different elements are spreadacross several interconnected computer systems. Any kind of computersystem or other apparatus for carrying out the methods described hereinis suited. A typical combination of hardware and software may be ageneral-purpose computer system with a computer program that, when beingloaded and executed, controls the computer system such that it carriesout the methods described herein.

[0063] The present invention may also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

[0064] While the present invention has been described with reference tocertain embodiments, it will be understood by those skilled in the artthat various changes may be made and equivalents may be substitutedwithout departing from the scope of the present invention. In addition,many modifications may be made to adapt a particular situation ormaterial to the teachings of the present invention without departingfrom its scope. Therefore, it is intended that the present invention notbe limited to the particular embodiment disclosed, but that the presentinvention will include all embodiments falling within the scope of theappended claims.

What is claimed is:
 1. A method for encoding data in a multilanecommunication channel, the method comprising: generating from existingcontrol characters in a character set, expanded control charactersutilized for controlling the data in each lane of said multilanecommunication channel; and controlling at least one of said lanes ofsaid multilane communication channel using at least one of saidgenerated control characters.
 2. The method according to claim 1,further comprising: if a first control character of said existingcontrol characters is an alignment character, selecting a second controlcharacter from any other of said existing control characters; andcombining said first control character with said second controlcharacter to generate a third control character.
 3. The method accordingto claim 2, wherein each of said combination of said combined firstcontrol character and said second control character represents saidexpanded control character.
 4. The method according to claim 2, furthercomprising: assigning a first logic level to said first controlcharacter; and assigning a second logic level to said second controlcharacter.
 5. The method according to claim 4, wherein said first logiclevel and said second logic level is one of logic zero (0) and logic(1).
 6. The method according to claim 1, further comprising: if a firstcontrol character of said existing control characters is astart-of-packet control character, selecting a second control characterfrom any other of said existing control characters; and indicating astart of a packet using said selected second control character.
 7. Themethod according to claim 6, further comprising placing said secondcontrol character in a first lane of the multilane communicationchannel.
 8. The method according to claim 1, further comprisingdetermining which lane of the multilane communication channel containsan end-of-packet control character.
 9. The method according to claim 8,further comprising: if said end-of-packet control character is precededby at least one control character in a lane of the multilanecommunication channel, selecting at least one other control characterfrom said existing control character set; and encoding said selected atleast one other control character as said end-of-packet controlcharacter.
 10. The method according to claim 8, further comprising: ifsaid end-of-packet control character is succeeded by at least one commacontrol character in a lane of the multilane communication channel,selecting at least one other control character from said existingcontrol character set; and encoding said selected at least one othercontrol character as said comma control character.
 11. The methodaccording to claim 10, further comprising generating combinations ofsaid encoded at least one other control character.
 12. The methodaccording to claim 11, further comprising assigning a unique value toeach of said generated combinations of said encoded at least one othercontrol character.
 13. The method according to claim 12, wherein each ofsaid assigned unique values represents an expanded control character.14. The method according to claim 1, further comprising determining atleast one lane of the multilane communication channel that has aninter-packet-gap control character.
 15. The method according to claim14, further comprising: selecting any combination of control charactersfrom said existing control character set; and encoding a column of saidmultilane communication channel corresponding to said determined atleast one lane with said selected any combination of control characters.16. The method according to claim 1, further comprising generating atleast one column bearing data bounded by control characters selectedfrom said existing control character set.
 17. The method according toclaim 16, wherein at least a first lane and a last lane of at least onecolumn of said multilane communication channel is encoded with saidcontrol characters selected from said existing control character set.18. The method according to claim 16, wherein said at least one columnof said multilane communication channel bearing said data comprises atleast one data word.
 19. The method according to claim 1, furthercomprising utilizing spare link bandwidth by said expanded controlcharacter.
 20. The method according to claim 1, wherein said existingcontrol characters comprise at least one of configuration characters,idle characters and encapsulation characters.
 21. A machine-readablestorage having stored thereon, a computer program having at least onecode section for encoding data in a multilane communication channel, theat least one code section being executable by a machine for causing themachine to perform steps comprising: generating from existing controlcharacters in a character set, expanded control characters utilized forcontrolling the data in each lane of said multilane communicationchannel; and controlling at least one of said lanes of said multilanecommunication channel using at least one of said generated controlcharacters.
 22. The machine-readable storage according to claim 21,further comprising: code for selecting a second control character fromany other of said existing control characters, if a first controlcharacter of said existing control characters is an alignment character;and code for combining said first control character with said secondcontrol character to generate a third control character.
 23. Themachine-readable storage according to claim 22, wherein each of saidcombination of said combined first control character and said secondcontrol character represents said expanded control character.
 24. Themachine-readable storage according to claim 22, further comprising codefor assigning a first logic level to said first control character andassigning a second logic level to said second control character.
 25. Themachine-readable storage according to claim 24, wherein said first logiclevel and said second logic level is one of logic zero (0) and logic(1).
 26. The machine-readable storage according to claim 21, furthercomprising: code for selecting a second control character from any otherof said existing control characters, if a first control character ofsaid existing control characters is a start-of-packet control character;and code for indicating a start of a packet using said selected secondcontrol character.
 27. The machine-readable storage according to claim26, further comprising code for placing said second control character ina first lane of the multilane communication channel.
 28. Themachine-readable storage according to claim 21, further comprising codefor determining which lane of the multilane communication channelcontains an end-of-packet control character.
 29. The machine-readablestorage according to claim 28, further comprising: code for selecting atleast one other control character from said existing control characterset, if said end-of-packet control character is preceded by at least onecontrol character in a lane of the multilane communication channel; andencoding said selected at least one other control character as saidend-of-packet control character.
 30. The machine-readable storageaccording to claim 28, further comprising: code for selecting at leastone other control character from said existing control character set ifsaid end-of-packet control character is succeeded by at least one commacontrol character in a lane of the multilane communication channel; andcode for encoding said selected at least one other control character assaid comma control character.
 31. The machine-readable storage accordingto claim 30, further comprising code for generating combinations of saidencoded at least one other control character.
 32. The machine-readablestorage according to claim 31, further comprising code for assigning aunique value to each of said generated combinations of said encoded atleast one other control character.
 33. The machine-readable storageaccording to claim 32, wherein each of said assigned unique valuesrepresents an expanded control character.
 34. The machine-readablestorage according to claim 21, further comprising code for determiningat least one lane of the multilane communication channel that has aninter-packet-gap control character.
 35. The machine-readable storageaccording to claim 34, further comprising: code for selecting anycombination of control characters from said existing control characterset; and code for encoding a column of said multilane communicationchannel corresponding to said determined at least one lane with saidselected any combination of control characters.
 36. The machine-readablestorage according to claim 21, further comprising code for generating atleast one column bearing data bounded by control characters selectedfrom said existing control character set.
 37. The machine-readablestorage according to claim 36, further comprising code for encoding atleast a first lane and a last lane of at least one column of saidmultilane communication channel with said control characters selectedfrom said existing control character set.
 38. The machine-readablestorage according to claim 36, wherein said at least one column of saidmultilane communication channel bearing said data comprises at least onedata word.
 39. The machine-readable storage according to claim 21,further comprising code for utilizing spare link bandwidth by saidexpanded control character.
 40. The machine-readable storage accordingto claim 21, wherein said existing control characters comprise at leastone of configuration characters, idle characters and encapsulationcharacters.
 41. A system for encoding data in a multilane communicationchannel, the system comprising: a generator that generates from existingcontrol characters in a character set, expanded control charactersutilized for controlling the data in each lane of said multilanecommunication channel; and a controller that controls at least one ofsaid lane of said multilane communication channel using at least one ofsaid generated control characters.
 42. The system according to claim 41,further comprising: a selector that selects a second control characterfrom any other of said existing control characters if a first controlcharacter of said existing control characters is an alignment character;and a combiner that combines said first control character with saidsecond control character to generate a third control character.
 43. Thesystem according to claim 42, wherein each of said combination of saidcombined first control character and said second control characterrepresents said expanded control character.
 44. The system according toclaim 42, further comprising an assignor that assigns a first logiclevel to said first control character and assigns a second logic levelto said second control character.
 45. The system according to claim 44,wherein said first logic level and said second logic level is one oflogic zero (0) and logic (1).
 46. The system according to claim 41,further comprising: a selector that selects a second control characterfrom any other of said existing control characters if a first controlcharacter of said existing control characters comprise start-of-packetcontrol characters; and said selected second control characterindicating a start of a packet.
 47. The system according to claim 46,further comprising a controller that places said second controlcharacter in a first lane of the multilane communication channel. 48.The system according to claim 41, further comprising a controller thatdetermines which lane of the multilane communication channel contains anend-of-packet control character.
 49. The system according to claim 48,further comprising: a selector that selects at least one other controlcharacter from said existing control character set if said end-of-packetcontrol character is preceded by at least one control character in alane of the multilane communication channel; and an encoder that encodessaid selected at least one other control character as said end-of-packetcontrol character.
 50. The system according to claim 48, furthercomprising: a selector that selects at least one other control characterfrom said existing control character set if said end-of-packet controlcharacter is succeeded by at least one comma control character in a laneof the multilane communication channel; and and encoder that encodessaid selected at least one other control character as said comma controlcharacter.
 51. The system according to claim 50, wherein said generatorgenerates combinations of said encoded at least one other controlcharacter.
 52. The system according to claim 51, further comprising anassignor that assigns a unique value to each of said generatedcombinations of said encoded at least one other control character. 53.The system according to claim 52, wherein each of said assigned uniquevalues represents an expanded control character.
 54. The systemaccording to claim 41, further comprising a controller that determinesat least one lane of the multilane communication channel that has aninter-packet-gap control character.
 55. The system according to claim54, further comprising: a selector that selects any combination ofcontrol characters from said existing control character set; and andencoder that encodes a column of said multilane communication channelcorresponding to said determined at least one lane with said selectedany combination of control characters.
 56. The system according to claim41, wherein said generator generates at least one column bearing databounded by control characters selected from said existing controlcharacter set.
 57. The system according to claim 56, further comprisingan encoder that encodes at least a first lane and a last lane of atleast one column of said multilane communication channel with saidcontrol characters selected from said existing control character set.58. The system according to claim 56, wherein said at least one columnof said multilane communication channel bearing said data comprises atleast one data word.
 59. The system according to claim 41, furthercomprising utilizing spare link bandwidth by said expanded controlcharacter.
 60. The system according to claim 41, wherein said existingcontrol characters comprise at least one of configuration characters,idle characters and encapsulation characters.